home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / GUSI / Examples / GUSITest.h < prev    next >
Text File  |  1992-09-11  |  2KB  |  71 lines

  1. /*********************************************************************
  2. File        :    GUSI                -    Grand Unified Socket Interface
  3. File        :    GUSITest.h        -    Common testing gear
  4. Author    :    Matthias Neeracher <neeri@iis.ethz.ch>
  5. Started    :    25Jul92                                Language    :    MPW C
  6.                 08Sep92    MN    Factor out more common code
  7. Last        :    08Sep92
  8. *********************************************************************/
  9.  
  10. typedef void (*TestCmd)(char ch1, char ch2, const char * restcmd);
  11.  
  12. #include <GUSITest_P.h>
  13.  
  14. #include <stdio.h>
  15.  
  16. extern FILE *  input;
  17. extern int        inputline;
  18.  
  19. /* void COMMAND(
  20.                  char ch1, char ch2,            Command name
  21.                 TestCmd p,                        Command to be run
  22.                 char *  s,                        Arguments to command
  23.                 char *  h);                        Explanation for command
  24.  
  25.     Example:
  26.         COMMAND('m', 'd', MkDir, "directory",            "Make a new directory");
  27. */
  28.  
  29. #define COMMAND(ch1,ch2,p,s,h)    \
  30.     DISPATCH(ch1,ch2)    =    (p),        \
  31.     USAGE(ch1,ch2)     =    (s),        \
  32.     HELPMSG(ch1,ch2)    =    (h)
  33.  
  34. /* An useful macro for dumping variables.
  35.     
  36.     Example:
  37.         DUMP(statbuf.st_dev,d);
  38. */
  39.  
  40. #define DUMP(EXPR, MODE)    printf("#    %s = %"#MODE"\n", #EXPR, EXPR)
  41.  
  42. /* Add common commands for sockets */
  43.  
  44. void AddSocketCommands();
  45.  
  46. /* Run the test. Define your commands with COMMAND and call this */
  47.  
  48. void RunTest(int argc, char ** argv);
  49.  
  50. /* Print a MPW executable location note */
  51.  
  52. void Where();
  53.  
  54. /* Print a prompt */
  55.  
  56. void Prompt();
  57.  
  58. /* Return a string of the current error number, e.g. "EINVAL" */
  59.  
  60. const char * Explain();
  61.  
  62. /* Print a usage message for a command */
  63.  
  64. void Usage(char ch1, char ch2);
  65.  
  66. /* Clean up sockets */
  67.  
  68. void CleanupSockets();
  69.  
  70. extern int sock;                /* Socket to read/write to                */
  71. extern int accsock;            /* Socket to accept connections on     */